﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
using System.Data;

public partial class Admin_OrderSoftDetails : System.Web.UI.Page
{
    private NhaKinhDoanhDataContext db;
    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!(Roles.IsUserInRole("Admin")))
        {
            Response.Redirect("~/Admin/Login.aspx");
        }
        try
        {
            db = new NhaKinhDoanhDataContext();
            int iMaPDH = int.Parse(Request.QueryString["id"]);

            var obj = (from pdh in db.PhieuDatHangs
                         where pdh.MaPDH == iMaPDH
                         select pdh).Single();

            if (obj.MaTinhTrang == 0)
            {
                btnDuyetPhieu.Visible = true;
                btnXoaPhieu.Visible = true;
            }

            if (obj.MaTinhTrang == 1)
            {
                btnYeuCauThanhToan.Visible = true;
                btnXoaPhieu.Visible = true;
            }

            MaPhieuDatHangLabel.Text = obj.MaPDH.ToString();

            if (obj.NgayDatHang != null)
                NgayDatHangTextBox.Text = obj.NgayDatHang.ToShortDateString();
            else
                NgayDatHangTextBox.Text = "";

            ThanhTienTextBox.Text = obj.ThanhTien.ToString("0.00");


            //PhiVanChuyenTextBox.Text = obj.PhiVanChuyen.ToString();


            //KhachHangComboBox.DataSource = (from ob in db.TaiKhoans select new { ob.MaKhachHang, ob.TenDangNhap }).Distinct();
            //KhachHangComboBox.DataValueField = "MaKhachHang";
            //KhachHangComboBox.DataTextField = "TenDangNhap";
            //KhachHangComboBox.DataBind();
            //KhachHangComboBox.SelectedValue = obj.MaKhachHang.ToString();
            KhachHangTextBox.Text = obj.KhachHang.TenKhachHang;

            //TinhTrangComboBox.DataSource = (from ob in db.TTPhieuDatHangs select new { ob.MaTinhTrang, ob.TenTinhTrang }).Distinct();
            //TinhTrangComboBox.DataValueField = "MaTinhTrang";
            //TinhTrangComboBox.DataTextField = "TenTinhTrang";
            //TinhTrangComboBox.DataBind();
            //TinhTrangComboBox.SelectedValue = obj.MaTinhTrang.ToString();
            TinhTrangTextBox.Text = obj.TTPhieuDatHang.TenTinhTrang;

            //if (Session["CitiesList"] != null)
            //{
            //    DataTable dtTP = (DataTable)Session["CitiesList"];
            //    ThanhPhoDenComboBox.DataSource = dtTP;
            //    ThanhPhoDenComboBox.DataTextField = dtTP.Columns["CityName"].ToString();
            //    ThanhPhoDenComboBox.DataValueField = dtTP.Columns["CityID"].ToString();
            //    ThanhPhoDenComboBox.DataBind();
            //    //if (obj.MaThanhPhoDen != null)
            //    //    ThanhPhoDenComboBox.SelectedValue = obj.MaThanhPhoDen;
            //    //else
            //    //    ThanhPhoDenComboBox.SelectedValue = "NULL";
            //}

            //NhaVanChuyenComboBox.DataSource = (from ob in db.NhaVanChuyens select new { ob.CarrierID, ob.CarrierName }).Distinct();
            //NhaVanChuyenComboBox.DataValueField = "CarrierID";
            //NhaVanChuyenComboBox.DataTextField = "CarrierName";
            //NhaVanChuyenComboBox.DataBind();

            //if (obj.MaNhaVanChuyen != null)
            //    NhaVanChuyenComboBox.SelectedValue = obj.MaNhaVanChuyen.ToString();
            //else
            //    NhaVanChuyenComboBox.SelectedValue = "NULL";



            //if (obj.NgayDiDuKien != null)
            //    NgayDiDuKienTextBox.Text = obj.NgayDiDuKien.ToString();
            //else
            //    NgayDiDuKienTextBox.Text = "";

            //if (obj.NgayDenDuKien != null)
            //    NgayDenDuKienTextBox.Text = obj.NgayDenDuKien.ToString();
            //else
            //    NgayDenDuKienTextBox.Text = "";

            //if (obj.LienKetTheoDoiVC != null)
            //    LienKetTheoDoiTextBox.Text = obj.LienKetTheoDoiVC;
            //else
            //    LienKetTheoDoiTextBox.Text = "";

            if (obj.DiaChiGiaoHang != null)
                DiaChiGiaoHangTextBox.Text = obj.DiaChiGiaoHang;
            else
                DiaChiGiaoHangTextBox.Text = "";

            if (obj.DiaChiThuHai != null)
                DiaChiGiaoHang2TextBox.Text = obj.DiaChiThuHai;
            else
                DiaChiGiaoHang2TextBox.Text = "";

            if (obj.DienThoaiLienHe != null)
                DienThoaiDiDongTextBox.Text = obj.DienThoaiLienHe;
            else
                DienThoaiDiDongTextBox.Text = "";

            if (obj.DienThoaiBan != null)
                DienThoaiBanTextBox.Text = obj.DienThoaiBan;
            else
                DienThoaiBanTextBox.Text = "";

            //if (obj.MaBaoMatThe != null)
            //    MaBaoMatTheTextBox.Text = obj.MaBaoMatThe;
            //else
            //    MaBaoMatTheTextBox.Text = "";

        }
        catch
        {             
            Response.Redirect("OrderManager.aspx");
        }
    }

    //protected void NhaVanChuyenComboBox_DataBound(object sender, EventArgs e)
    //{
    //    NhaVanChuyenComboBox.Items.Add(new ListItem("Không có", "NULL"));
    //}
    //protected void ThanhPhoDenComboBox_DataBound(object sender, EventArgs e)
    //{
    //    ThanhPhoDenComboBox.Items.Add(new ListItem("Khác", "NULL"));
    //}

    protected void btnDuyetPhieu_Click(object sender, EventArgs e)
    {
        try
        {
            NhaKinhDoanhDataContext db = new NhaKinhDoanhDataContext();
            int iMaPDH = int.Parse(Request.QueryString["id"]);
            var query = (from pdh in db.PhieuDatHangs
                         where pdh.MaPDH == iMaPDH
                         select pdh).Single();

            query.MaTinhTrang = 1;
            db.SubmitChanges();

            query = (from pdh in db.PhieuDatHangs
                     where pdh.MaPDH == iMaPDH
                     select pdh).Single();
            TinhTrangTextBox.Text = query.TTPhieuDatHang.TenTinhTrang;

            btnDuyetPhieu.Visible = false;
            btnYeuCauThanhToan.Visible = true;
            NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.success, "Phiếu đặt hàng đã được duyệt và cập nhật lại trạng thái thành công");
        }
        catch (Exception ex)
        {
            NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.error, ex.Message);

        }
    }
        
    protected void btnXoaPhieu_Click(object sender, EventArgs e)
    {

        try
        {
            NhaKinhDoanhDataContext db = new NhaKinhDoanhDataContext();

            int iMaPDH = int.Parse(Request.QueryString["id"]);
            var query = (from pdh in db.PhieuDatHangs
                         where pdh.MaPDH == iMaPDH
                         select pdh).Single();

            query.MaTinhTrang = 6;
            db.SubmitChanges();

            query = (from pdh in db.PhieuDatHangs
                     where pdh.MaPDH == iMaPDH
                     select pdh).Single();
            TinhTrangTextBox.Text = query.TTPhieuDatHang.TenTinhTrang;

            NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.success, "Phiếu đặt hàng đã được xóa thành công.");
        }
        catch
        {
            NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.error, "Xảy ra lỗi trong quá trình xử lý. Vui lòng thực hiện lại.");
        }
    }    

    protected void btnYeuCauThanhToan_Click(object sender, EventArgs e)
    {
        string sMessage = "";
        bool bResult = true;
        int iMaPDH = 0;

        try
        {
            db = new NhaKinhDoanhDataContext();
            iMaPDH = int.Parse(Request.QueryString["id"]);

            var phieudh = (from pdh in db.PhieuDatHangs
                           where pdh.MaPDH == iMaPDH
                           select pdh).Single();

            var khachhang = (from kh in db.KhachHangs
                             where kh.MaKhachHang == phieudh.MaKhachHang
                             select kh).Single();
            
            BrokerServices broker = new BrokerServices();

            TheThanhToan the = khachhang.TheThanhToan;

            float fTongTien = (float)phieudh.ThanhTien;

            string sResult = broker.TranferMoneyForCustomer(the.MaTheThanhToan, fTongTien, the.MaBaoMatThe, the.TenChuThe);

            int iResult = int.Parse(sResult);

            if (iResult == 0)
            {
                sMessage = "Giao dịch thành công. Tiền mua hàng đã được chuyển vào tài khoản.";
            }
            else
            {
                sMessage = "Giao dịch thất bại. Xảy ra lỗi trong quá trình giao dịch. Hãy thử lại sau.";
                bResult = false;
            }
        }
        catch
        {
            sMessage = "Xảy ra lỗi trong quá trình giao dịch. Hãy thử lại sau.";
            bResult = false;
        }

        if (bResult)
        {
            NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.success, sMessage);

            var query = (from pdh in db.PhieuDatHangs
                         where pdh.MaPDH == iMaPDH
                         select pdh).Single();

            query.MaTinhTrang = 4;
            db.SubmitChanges();

            query = (from pdh in db.PhieuDatHangs
                     where pdh.MaPDH == iMaPDH
                     select pdh).Single();
            TinhTrangTextBox.Text = query.TTPhieuDatHang.TenTinhTrang;

            btnYeuCauThanhToan.Visible = false;
        }
        else
        {
            NotificationMessage.InnerHtml = NotificationHelper.SetNotification(NotificationHelper.Notification.error,sMessage);
           
        }
    }
}